package day14.a04polymorphismdemo4;

   /* 根据需求完成代码:
            1.定义狗类
    属性：
    年龄，颜色
    行为:
    eat(String something)(something表示吃的东西)
    看家lookHome方法(无参数)

	2.定义猫类
    属性：
    年龄，颜色
    行为:
    eat(String something)方法(something表示吃的东西)
    逮老鼠catchMouse方法(无参数)

	3.定义Person类//饲养员
    属性：
    姓名，年龄
    行为：
    keepPet(Dog dog,String something)方法
    功能：喂养宠物狗，something表示喂养的东西
    行为：
    keepPet(Cat cat,String something)方法
    功能：喂养宠物猫，something表示喂养的东西
    生成空参有参构造，set和get方法
	4.定义测试类(完成以下打印效果):
    keepPet(Dog dog,String something)方法打印内容如下：
            年龄为30岁的老王养了一只黑颜色的2岁的狗   //对饲养员的描述
			2岁的黑颜色的狗两只前腿死死的抱住骨头猛吃  //当狗在吃东西的时候的描述
    keepPet(Cat cat,String something)方法打印内容如下：
            年龄为25岁的老李养了一只灰颜色的3岁的猫
			3岁的灰颜色的猫眯着眼睛侧着头吃鱼
	5.思考：
            1.Dog和Cat都是Animal的子类，以上案例中针对不同的动物，定义了不同的keepPet方法，过于繁琐，能否简化，并体会简化后的好处？
            2.Dog和Cat虽然都是Animal的子类，但是都有其特有方法，能否想办法在keepPet中调用特有方法？*/

public class Test {
    public static void main(String[] args) {
        //创建对象并调用方法
       /* Person p1 = new Person("老王",30);
        Dog d = new Dog(2,"黑");
        p1.keepPet(d,"骨头");


        Person p2 = new Person("老李",25);
        Cat c = new Cat(3,"灰");
        p2.keepPet(c,"鱼");*/



        //创建饲养员的对象
        Person p = new Person("老王",30);
        Dog d = new Dog(2,"黑");
        Cat c = new Cat(3,"灰");
        p.keepPet(d,"骨头");
        p.keepPet(c,"鱼");

    }

}
